#pragma once

#include <vector>

template <class T>
class Subject;

template<class T>
class IObserver
{
public:
	typedef std::vector<IObserver<T>*> Vector_t;

    virtual void Notify(const T &e, Subject<T> *o) = 0;
	virtual void NotifyOfDeath( Subject<T> *o ) = 0;
    virtual ~IObserver(){}
};
